import Vue from 'vue';
// base modules

// grid
import oBaseForm from '@/components/base/grid/o-base-form/index.vue';
import oBaseGrid from '@/components/base/grid/o-base-grid/index.vue';
import oMagicBox from '@/components/base/modal/o-magicbox/index.vue';

const oTreeGrid: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/grid/o-tree-grid/index.vue'
  ); // 树形表格

const oDateNav: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/nav/o-date-nav/index.vue'
  ); // 日期导航

const oBasePanel: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/grid/o-base-panel/index.vue'
  ); // 基本表单
const oTree: any = () =>
  import(
    /* webpackChunkName: "special-modules" */ '@/components/base/nav/o-tree/index.vue'
  );
const oTreeView: any = () =>
  import(
    /* webpackChunkName: "special-modules" */ '@/components/base/nav/o-tree-view/index.vue'
  );

// tab
const oBaseTab: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/container/o-base-tab/index.vue'
  ); // 基本页签

// button
const oToolButton: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/button/o-tool-button/index.vue'
  ); // 工具按钮

// input
const oIdRender: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-id-render/index.vue'
  );
const oSeqRender: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-seq-render/index.vue'
  );
const oDatePicker: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-datepicker/index.vue'
  );

const oAuxInput: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-aux-input/index.vue'
  );

const oNumberInput: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-number-input/index.vue'
  );
const oNumberInputRange: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-number-input/range.vue'
  );
const oI18nSelector: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-i18n-selector/index.vue'
  );
const oI18nSelectorCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-i18n-selector/cell.vue'
  );
const oM2oSelector: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-m2o-selector/index.vue'
  );
const oM2oEditor: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-m2o-editor/index.vue'
  );
const oInput: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-input/index.vue'
  );
const oInputCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-input/cell.vue'
  );
const oSelect: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-select/index.vue'
  );
const oSelectCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-select/cell.vue'
  );
const oFileInput: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-file-input/index.vue'
  );
const oFileInputCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-file-input/cell.vue'
  );
const oSwitch: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-switch/index.vue'
  );
const oFilterInput: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-filter-input/index.vue'
  );
const oIconSelector: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-icon-selector/index.vue'
  );
const oImageSelector: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-image-selector/index.vue'
  );
const oImageSelectorCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-image-selector/cell.vue'
  );

const oColorSelector: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-color-selector/index.vue'
  );
const oColorSelectorCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-color-selector/cell.vue'
  );

// layout
const oLayout: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/layout/index.vue'
  );

const oLayoutMini: any = () =>
  import(/* webpackChunkName: "base-modules" */ '@/components/layout/mini.vue');

const oLayoutSingle: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/layout/single.vue'
  );

const oImageViewer: any = () =>
  import(
    /* webpackChunkName: "special-modules" */ './base/modal/o-image-viewer/index.vue'
  );

const oFileManager: any = () =>
  import(
    /* webpackChunkName: "special-modules" */ './base/modal/o-file-manager/index.vue'
  );

const oAuditMap: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-audit-map/index.vue'
  );

const oAuditSelect: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-audit-select/index.vue'
  );

const oAuditUrgent: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-audit-urgent/index.vue'
  );

const oI18nPanel = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/modal/o-i18n-panel/index.vue'
  );

const oImportPanel: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/modal/o-import-panel/index.vue'
  );

const oPrintPanel: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/modal/o-print-panel/index.vue'
  );
const oBaseChart: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/grid/o-base-chart/index.vue'
  );

const oSetupPanel = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/modal/o-setup-panel/index.vue'
  );
const oCombobox = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/input/o-combobox/index.vue'
  );
const oIconbox = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/input/o-iconbox/index.vue'
  );

const oCardBox = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/modal/o-card-box/index.vue'
  );
const oRuleEngine = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/custom/ruleEditor/index.vue'
  );
const oContextMenu = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/menu/o-context-menu/index.vue'
  );
const cFlowchart = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/graph/c-flowchart/index.vue'
  );
const oFlowchart = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/graph/o-flowchart/index.vue'
  );
const oSimpleToolbar = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/toolbar/o-simple-toolbar/index.vue'
  );

const cPms = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/custom/cPms/index.vue'
  );
const oCGainKey = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/custom/gainKey/index.vue'
  );
const oDialogBox = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/modal/o-dialog-box/index.vue'
  );

const oSimpleTable = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/grid/o-simple-table/index.vue'
  );
const oBaseGridPlus = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/grid/o-base-grid-plus/index.vue'
  );
const cSwitch = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/input/c-switch/index.vue'
  );
const oGraph = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/graph/o-graph/index.vue'
  );
const oBaseView = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/grid/o-base-view/index.vue'
  );
const oRefComp = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/container/o-ref-comp/index.vue'
  );
const cBaseForm = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/grid/cBaseForm/index.vue'
  );
const oInteraction = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/modal/o-interaction/index.vue'
  );
const oRadio = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/input/o-radio/index.vue'
  );
const oTransfer: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-transfer/index.vue'
  );
const oMultiForm: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/container/o-multi-form/index.vue'
  );
const oRefGraph: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/graph/o-ref-graph/index.vue'
  );
const oSendMessage: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-send-message/index.vue'
  );
const oM2oCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-m2o-selector/oM2oCell.vue'
  );
const oRichText: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-rich-text/index.vue'
  );
const oRichTextCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-rich-text/cell.vue'
  );
const oRefBaseGrid: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/container/o-ref-base-grid/index.vue'
  );
const oReportChart: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/base/container/o-reprot-chart/index.vue'
  );
const cGlobalConf: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ '@/components/custom/cGlobalConf/index.vue'
  );
const oColtrol: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-control/index.vue'
  );

const oSearch: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-search/index.vue'
  );

const cBarcodeScan = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/input/c-barcode-scan/index.vue'
  );
const cBpmn = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/graph/c-bpmn/index.vue'
  );
const oUserpref = () =>
  import(
    /* webpackChunkName: "root-modules" */ '@/components/base/modal/o-user-pref/index.vue'
  );

const oCloneBasePanel: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/container/o-clone-base-panel/index.vue'
  );

const oApprovalInfo: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-approval-info/index.vue'
  );

const cScadaView: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './custom/cScadaView/index.vue'
  );

const homePage: any = () =>
  import(/* webpackChunkName: "base-modules" */ './custom/homePage/index.vue');

const oMsgList: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-msg-list/index.vue'
  );

const oMultiSelector: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-multi-selector/index.vue'
  );

const oMultiSelectorCell: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/input/o-multi-selector/cell.vue'
  );

const oMessageList: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './custom/homePage/homeCpt/o-message-list/index.vue'
  );

const oMsgNotice: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './custom/homePage/homeCpt/o-message-list/msgDetailModel/msgNotice.vue'
  );

const oMsgBroadcast: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './custom/homePage/homeCpt/o-message-list/msgDetailModel/msgBroadcast.vue'
  );

const oMsgGeneral: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './custom/homePage/homeCpt/o-message-list/msgDetailModel/msgGeneral.vue'
  );

const oIframe: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-iframe/index.vue'
  );
const oChartView: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-chart-view/index.vue'
  );

const cProcessCard: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './custom/processCard/index.vue'
  );

const oSchedule: any = () =>
  import(/* webpackChunkName: "base-modules" */ './custom/schedule/index.vue');

const cPaintCodeGuide: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './custom/cPaintCodeGuide/index.vue'
  );

const oProgressBar: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/o-progress-bar/index.vue'
  );

const cSelectApprovers: any = () =>
  import(
    /* webpackChunkName: "base-modules" */ './base/modal/c-select-approvers/index.vue'
  );

const components: any = {
  oRuleEngine,
  oBaseGrid,
  oTreeGrid,
  oDateNav,
  oBaseForm,
  cBaseForm,
  oBaseTab,
  oBasePanel,
  oBaseChart,
  oDatePicker,
  oNumberInput,
  oNumberInputRange,
  oI18nSelector,
  oI18nSelectorCell,
  oM2oSelector,
  oM2oEditor,
  oInput,
  oInputCell,
  oSelect,
  oSelectCell,
  oSwitch,
  oFilterInput,
  oFileInput,
  oFileInputCell,
  oIdRender,
  oSeqRender,
  oAuxInput,
  oIconSelector,
  oImageSelector,
  oImageSelectorCell,
  oColorSelector,
  oColorSelectorCell,
  oLayout,
  oLayoutMini,
  oLayoutSingle,
  oToolButton,
  oTree,
  oTreeView,
  oMagicBox,
  oFileManager,
  oImageViewer,
  oAuditMap,
  oAuditSelect,
  oAuditUrgent,
  oSetupPanel,
  oI18nPanel,
  oImportPanel,
  oPrintPanel,
  oCardBox,
  oCombobox,
  oIconbox,
  oContextMenu,
  cFlowchart,
  oSimpleToolbar,
  cPms,
  oCGainKey,
  oDialogBox,
  oSimpleTable,
  oFlowchart,
  oBaseGridPlus,
  cSwitch,
  oGraph,
  oBaseView,
  oRefComp,
  oInteraction,
  oRadio,
  oTransfer,
  oMultiForm,
  oRefGraph,
  oSendMessage,
  oM2oCell,
  oRichTextCell,
  oRichText,
  oRefBaseGrid,
  oReportChart,
  cGlobalConf,
  oColtrol,
  oSearch,
  cBarcodeScan,
  oUserpref,
  cBpmn,
  oCloneBasePanel,
  oApprovalInfo,
  cScadaView,
  homePage,
  oMsgList,
  oMultiSelector,
  oMultiSelectorCell,
  oMessageList,
  oMsgNotice,
  oMsgBroadcast,
  oIframe,
  oChartView,
  cProcessCard,
  oSchedule,
  cPaintCodeGuide,
  oProgressBar,
  oMsgGeneral,
  cSelectApprovers
};

Object.keys(components).forEach(key => {
  Vue.component(key, components[key]);
});
